home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Ahoy 1988 April
/
Ahoy_Magazine_88-04_1988_Double_L.d64
/
Sprite Exploder
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
6KB
|
224 lines
1 forx=0to455:reada:poke49176+x,a:next:forx=0to455:reada:poke49680+x,a:next
2 poke52,48:poke56,48:clr:s1=255:ds=-1:s2=s1+ds:p1=49152
10 print"[147]john fedor's sprite exploder!":poke53269,0
15 poke53280,0:poke53281,0
20 print"[213][195][174][157][157][157][194]1[194] load sprites"chr$(13)"[173][195][203]"
30 print"[213][195][174][157][157][157][194]2[194] save sprites"chr$(13)"[173][195][203]"
40 print"[213][195][174][157][157][157][194]3[194] explode sprites"chr$(13)"[173][195][203]"
50 print"[213][195][174][157][157][157][194]4[194] animate sprites"chr$(13)"[173][195][203]"
60 printtab(12)"choice (1-4) ? ";
65 poke198,0
70 geta$:ifa$<"1"ora$>"4"then70
75 onval(a$)gosub300,400,100,500
80 goto10
100 print"[147]":v=53248:pokev,104:pokev+1,100:pokev+3,100:pokev+2,152
110 pokev+21,1:pokev+39,1:pokev+40,1
120 poke2040,s1:poke2041,s2
125 print"choose source sprite (+/-)."
130 print"hit <return> when ready."
135 poke198,0
140 poke2040,s1:print""tab(9)s1:geta$:ifa$="+"thens1=s1+1
143 ifs1>255thens1=255
145 ifa$="-"thens1=s1-1:ifs1<192thens1=192
150 ifa$<>chr$(13)then140
155 s2=s1+ds:poke2041,s2:pokev+21,3
160 print"[147]choose destination sprite (+/-).":print"hit <return> when ready."
165 poke198,0
170 print""tab(15)s2
173 s3=0:geta$:ifa$="+"ora$="-"thens3=val(a$+"1"):ifs3+s1<128ors3+s1>255then170
175 ifs3thends=s3:s2=s1+ds:poke2041,s2:goto170
180 ifa$<>chr$(13)then170
181 print"[147]how many frames do you want (1-12) ?":inputmx:ifmx<1ormx>12then181
182 ifmx*ds+s1<192thenmx=s1-192
183 ifmx*ds+s1>255thenmx=255-s1
184 forq=1tomx:poke2040,s1:poke2041,s2:print"[147]calculating. "1+mx-q"left to do"
185 fori=s2*64tos2*64+63:pokei,.:next:forx=1to22:x4=int(x/8):fory=1to19
190 ifpeek(s1*64+y*3+x4)and(2^((23-x)and7))thengosub200
195 nexty,x:s1=s2:s2=s2+ds:nextq:return
200 p=x+y*24:x1=peek(p+p1):y1=peek(p+p1+504):a=s2*64+y1*3+int(x1/8)
202 ifp=600thenreturn
205 pokea,peek(a)or(2^((23-x1)and7)):return
300 print"[147]load:"
305 print"enter the filename to be loaded":f$="":c$=chr$(0)
310 inputf$:iff$=""thenreturn
313 print"[147]loading..."
315 open15,8,15,"i0":open5,8,5,f$+",p,r":input#15,a,b$,c,d:ifathen600
320 get#5,a$,b$:s1=(asc(a$+c$)+asc(b$+c$)*256)/64:s2=s1
325 get#5,a$:ifstthen340
330 pokes2*64,asc(a$+c$):fori=1to63:get#5,a$:pokes2*64+i,asc(a$+c$):nexti
335 s2=s2+1:goto325
340 s2=s2-1:close5:close15
345 return
400 print"[147]save:"
405 print"enter the filename to be saved":f$="":c$=chr$(0)
410 inputf$:iff$=""thenreturn
415 v=53248:pokev+21,1:pokev,100:pokev+1,100:pokev+39,1:poke2040,s1:poke198,0
420 print"[147]choose starting sprite frame to save.":print"use +/-, <return>"
425 print""tab(9)s1:poke2040,s1
430 geta$:ifa$="+"thens1=s1+1:ifs1=256thens1=255
435 ifa$="-"thens1=s1-1:ifs1=191thens1=192
440 ifa$<>chr$(13)then425
441 poke198,0
443 print"[147]choose ending sprite frame to save.":print"use +/-, <return>":s2=s1
445 print""tab(9)s2:poke2040,s2
447 geta$:ifa$="+"thens2=s2+1:ifs2=256thens2=255
449 ifa$="-"thens2=s2-1:ifs2<s1thens2=s1
450 ifa$<>chr$(13)then445
455 open15,8,15,"i0":open5,8,5,f$+",p,w":input#15,a,b$,c,d:ifathen600
457 print"[147]saving..."
460 a=s1*64:h=int(a/256):l=a-h*256:print#5,chr$(l)chr$(h);
465 fori=atos2*64+63:print#5,chr$(peek(i));:nexti
470 close5:close15:return
500 print"[147]animation sequence."
505 v=53248:pokev,100:pokev+1,100
507 print"choose beginning frame: (+/-).":poke198,0
510 pokev+39,1:pokev+21,1
515 print""tab(9)s1:poke2040,s1
520 geta$:ifa$="+"thens1=s1+1:ifs1=256thens1=255
525 ifa$="-"thens1=s1-1:ifs1=191thens1=192
530 ifa$<>chr$(13)then515
535 print"choose ending frame: (+/-). ":poke198,0
540 print""tab(9)s2:poke2040,s2
545 geta$:ifa$="+"thens2=s2+1:ifs2=256thens2=255
550 ifa$="-"thens2=s2-1:ifs2=191thens2=192
555 ifa$<>chr$(13)then540
560 dx=10:poke198,0
565 print"[147]animation sequence"
570 print"use (+/-) to adjust delay":print"delay="
575 forx=s1tos2stepsgn(s2-s1):print""tab(8)dx"[157] "
580 poke2040,x:geta$:ifa$="-"thendx=dx+1
585 ifa$="+"thendx=dx-1:ifdx<1thendx=1
590 fori=1todx:nexti:nextx
595 print"again (y/n) ?":poke198,0
597 geta$:ifa$="y"then565
598 ifa$<>"n"then597
599 return
600 close5:close15
605 print"[147]there was a disk error!"
610 print"please fix and correct."
615 print""a","b$","c","d
620 ifa=63then650
625 print"press <return> for menu."
630 geta$:ifa$<>chr$(13)then630
635 return
650 print"would you like to scratch "f$"?"
655 poke198,0
660 geta$:ifa$="n"then625
665 ifa$<>"y"then660
670 open15,8,15,"s0:"+f$:close15
675 goto455
49176 data24,0,1,3,4,5,6,7
49184 data8,9,10,11,13,14,15,16
49192 data17,18,19,20,21,22,23,24
49200 data24,0,1,2,3,4,5,6
49208 data8,9,10,11,12,13,14,15
49216 data17,18,19,20,21,22,23,24
49224 data24,0,1,2,3,4,5,7
49232 data8,9,10,11,12,13,15,16
49240 data17,18,19,20,21,22,23,24
49248 data24,0,1,2,3,4,5,7
49256 data7,9,10,11,12,14,14,16
49264 data17,18,19,20,21,22,23,24
49272 data24,0,1,2,3,4,5,6
49280 data7,9,10,11,12,13,15,16
49288 data17,18,19,20,21,22,23,24
49296 data24,0,1,2,3,4,5,6
49304 data7,9,10,11,13,14,15,16
49312 data17,18,19,20,21,22,23,24
49320 data24,0,1,2,3,4,5,6
49328 data7,8,10,11,13,14,15,16
49336 data17,18,19,20,21,22,23,24
49344 data24,0,1,2,3,4,5,6
49352 data7,8,9,11,13,14,15,16
49360 data17,18,19,20,21,22,23,24
49368 data24,0,1,2,3,4,5,6
49376 data7,8,9,10,13,14,15,16
49384 data17,18,19,20,21,22,23,24
49392 data24,0,1,2,3,4,5,6
49400 data7,8,9,10,13,14,15,16
49408 data17,18,19,20,21,22,23,24
49416 data24,0,1,2,3,4,5,6
49424 data7,8,9,11,13,14,15,16
49432 data17,18,19,20,21,22,23,24
49440 data24,0,1,2,3,4,5,6
49448 data7,8,10,11,13,14,15,16
49456 data17,18,19,20,21,22,23,24
49464 data24,0,1,2,3,4,5,6
49472 data7,9,10,11,13,14,15,16
49480 data17,18,19,20,21,22,23,24
49488 data24,0,1,2,3,4,5,6
49496 data8,9,10,11,13,14,15,16
49504 data17,18,19,20,21,22,23,24
49512 data24,0,1,2,3,4,5,6
49520 data7,9,10,11,12,13,15,16
49528 data17,18,19,20,21,22,23,24
49536 data24,0,1,2,3,4,5,7
49544 data7,9,10,11,12,14,14,16
49552 data17,18,19,20,21,22,23,24
49560 data24,0,1,2,3,4,5,7
49568 data8,9,10,11,12,13,15,16
49576 data17,18,19,20,21,22,23,24
49584 data24,0,1,2,3,4,5,6
49592 data8,9,10,11,12,13,14,15
49600 data17,18,19,20,21,22,23,24
49608 data24,0,1,3,4,5,6,7
49616 data8,9,10,11,13,14,15,16
49624 data17,18,19,20,21,22,23,24
49680 data24,1,0,0,0,0,0,0
49688 data0,0,0,0,0,0,0,0
49696 data0,0,0,0,0,0,1,24
49704 data24,2,1,1,1,1,1,1
49712 data1,1,1,1,1,1,1,1
49720 data1,1,1,1,1,1,2,24
49728 data24,3,2,2,2,2,2,2
49736 data2,2,2,2,2,2,2,2
49744 data2,2,2,2,2,2,3,24
49752 data24,4,3,4,4,4,3,3
49760 data3,3,3,3,3,3,3,3
49768 data3,3,3,4,4,3,4,24
49776 data24,5,5,5,4,5,5,5
49784 data4,4,4,4,4,4,4,4
49792 data4,5,4,4,5,5,5,24
49800 data24,6,6,5,6,6,5,5
49808 data5,5,5,5,5,5,5,5
49816 data5,6,6,6,5,6,6,24
49824 data24,7,7,7,7,7,7,7
49832 data7,7,6,6,6,6,6,7
49840 data7,7,7,7,7,7,7,24
49848 data24,8,8,8,8,8,8,8
49856 data8,8,8,7,7,7,8,8
49864 data8,8,8,8,8,8,8,24
49872 data24,9,9,9,9,9,9,9
49880 data9,9,9,9,10,9,9,9
49888 data9,9,9,9,9,9,9,24
49896 data24,11,10,10,10,10,11,10
49904 data10,11,11,11,10,11,11,11
49912 data10,11,10,10,10,10,11,24
49920 data24,12,11,11,11,12,11,12
49928 data12,12,12,12,12,12,12,12
49936 data12,12,11,12,11,11,12,24
49944 data24,13,12,12,13,13,12,13
49952 data13,13,13,13,13,13,13,13
49960 data13,13,13,12,13,12,13,24
49968 data24,14,13,14,13,14,14,14
49976 data14,14,14,14,14,14,14,14
49984 data14,14,14,14,14,13,14,24
49992 data24,15,14,15,15,15,15,14
50000 data15,15,15,15,15,15,15,15
50008 data15,15,15,15,14,15,15,24
50016 data24,16,16,15,16,16,16,16
50024 data16,16,16,16,16,16,16,16
50032 data16,16,16,16,16,16,16,24
50040 data24,17,17,17,17,17,17,17
50048 data17,17,17,17,17,17,17,17
50056 data17,17,17,17,17,17,17,24
50064 data24,18,18,18,18,18,18,18
50072 data18,18,18,18,18,18,18,18
50080 data18,18,18,18,18,18,18,24
50088 data24,19,19,19,19,19,19,19
50096 data19,19,19,19,19,19,19,19
50104 data19,19,19,19,19,19,19,24
50112 data24,20,20,20,20,20,20,20
50120 data20,20,20,20,20,20,20,20
50128 data20,20,20,20,20,20,20,24